<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
<HEAD>
   <TITLE>class  SG_EXPORT osg::ShadowVolumeOccluder</TITLE>
   <META NAME="GENERATOR" CONTENT="DOC++ 3.4.8">
</HEAD>
<BODY BGCOLOR="#ffffff">

<H2>class  SG_EXPORT <A HREF="#DOC.DOCU">osg::ShadowVolumeOccluder</A></H2></H2><BLOCKQUOTE>ShadowVolumeOccluder is a helper class for implementating shadow occlusion culling.</BLOCKQUOTE>
<HR>

<DL>
<P><DL>
<DT><H3>Public Methods</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef  std::vector&lt;<!1><A HREF="Polytope.html">Polytope</A>&gt; HoleList <B><A HREF="#DOC.2.112.1">ShadowVolumeOccluder</A></B>(const <!1><A HREF="ShadowVolumeOccluder.html#DOC.2.112.1">ShadowVolumeOccluder</A>&amp; svo)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif> <B><A HREF="#DOC.2.112.2">ShadowVolumeOccluder</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.112.3">operator < </A></B>(const <!1><A HREF="ShadowVolumeOccluder.html">ShadowVolumeOccluder</A>&amp; svo) const 
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.112.4">computeOccluder</A></B>(const NodePath&amp; nodePath, const <!1><A HREF="ConvexPlanerOccluder.html">ConvexPlanerOccluder</A>&amp; occluder, <!1><A HREF="CullStack.html">CullStack</A>&amp; cullStack, bool createDrawables=false)
<DD><I>compute the shadow volume occluder.</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.112.5">disableResultMasks</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.112.6">matchProjectionMatrix</A></B>(const <!1><A HREF="Matrix.html">osg::Matrix</A>&amp; matrix) const 
<DD><I>return true if the matrix passed in matches the projection matrix that this ShaowVolumeOccluder is associated with</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.112.7">setNodePath</A></B>(NodePath&amp; nodePath)
<DD><I>Set the NodePath which describes the which node in the scene graph that this occluder was attached to</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   NodePath&amp; <B><A HREF="#DOC.2.112.8">getNodePath</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   const NodePath&amp; <B><A HREF="#DOC.2.112.9">getNodePath</A></B>() const 
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.112.10">getVolume</A></B>() const 
<DD><I>get the volume of the occluder minus its holes, in eye coords, the volume is normalized by dividing by  the volume of the view frustum in eye coords</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Polytope.html">Polytope</A>&amp; <B><A HREF="#DOC.2.112.11">getOccluder</A></B>()
<DD><I>return the occluder polytope</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const <!1><A HREF="Polytope.html">Polytope</A>&amp; <B><A HREF="#DOC.2.112.12">getOccluder</A></B>() const 
<DD><I>return the const occluder polytope</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>HoleList&amp; <B><A HREF="#DOC.2.112.13">getHoleList</A></B>()
<DD><I>return the list of holes</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>const HoleList&amp; <B><A HREF="#DOC.2.112.14">getHoleList</A></B>() const 
<DD><I>return the const list of holes</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.112.15">contains</A></B>(const std::vector&lt;<!1><A HREF="Vec3.html">Vec3</A>&gt;&amp; vertices)
<DD><I>return true if the specified vertex list is contaned entirely within this shadow occluder volume</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.112.16">contains</A></B>(const <!1><A HREF="BoundingSphere.html">BoundingSphere</A>&amp; bound)
<DD><I>return true if the specified bounding sphere is contaned entirely within this shadow occluder volume</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>bool <B><A HREF="#DOC.2.112.17">contains</A></B>(const <!1><A HREF="BoundingBox.html">BoundingBox</A>&amp; bound)
<DD><I>return true if the specified bounding box is contained entirely within this shadow occluder volume</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.112.18">transformProvidingInverse</A></B>(const <!1><A HREF="Matrix.html">osg::Matrix</A>&amp; matrix)
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>typedef  std::vector&lt;<!1><A HREF="ShadowVolumeOccluder.html">ShadowVolumeOccluder</A>&gt;inline  ShadowVolumeOccluderList void <B><A HREF="#DOC.2.112.24">disableResultMasks</A></B>()
<DD><I>A list of ShadowVolumeOccluder, used by CollectOccluderVisitor and CullVistor's</I>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.112.25">pushCurrentMask</A></B>()
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>inline   void <B><A HREF="#DOC.2.112.26">popCurrentMask</A></B>()
</DL></P>

<P><DL>
<DT><H3>Protected Fields</H3><DD><DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>float <B><A HREF="#DOC.2.112.19">_volume</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>NodePath <B><A HREF="#DOC.2.112.20">_nodePath</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;const <!1><A HREF="Matrix.html">Matrix</A>&gt;  <B><A HREF="#DOC.2.112.21">_projectionMatrix</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif><!1><A HREF="Polytope.html">Polytope</A> <B><A HREF="#DOC.2.112.22">_occluderVolume</A></B>
<DT>
<IMG ALT="[more]" BORDER=0 SRC=icon1.gif>HoleList <B><A HREF="#DOC.2.112.23">_holeList</A></B>
</DL></P>

</DL>

<A NAME="DOC.DOCU"></A>
<HR>
<H2>Documentation</H2>
<BLOCKQUOTE>ShadowVolumeOccluder is a helper class for implementating shadow occlusion culling. </BLOCKQUOTE>
<DL>

<A NAME="ShadowVolumeOccluder"></A>
<A NAME="DOC.2.112.1"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef  std::vector&lt;<!1><A HREF="Polytope.html">Polytope</A>&gt; HoleList ShadowVolumeOccluder(const <!1><A HREF="ShadowVolumeOccluder.html#DOC.2.112.1">ShadowVolumeOccluder</A>&amp; svo)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="ShadowVolumeOccluder"></A>
<A NAME="DOC.2.112.2"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B> ShadowVolumeOccluder()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="operator < "></A>
<A NAME="DOC.2.112.3"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool operator < (const <!1><A HREF="ShadowVolumeOccluder.html">ShadowVolumeOccluder</A>&amp; svo) const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="computeOccluder"></A>
<A NAME="DOC.2.112.4"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool computeOccluder(const NodePath&amp; nodePath, const <!1><A HREF="ConvexPlanerOccluder.html">ConvexPlanerOccluder</A>&amp; occluder, <!1><A HREF="CullStack.html">CullStack</A>&amp; cullStack, bool createDrawables=false)</B></TT>
<DD>compute the shadow volume occluder. 
<DL><DT><DD></DL><P>
<A NAME="disableResultMasks"></A>
<A NAME="DOC.2.112.5"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void disableResultMasks()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="matchProjectionMatrix"></A>
<A NAME="DOC.2.112.6"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool matchProjectionMatrix(const <!1><A HREF="Matrix.html">osg::Matrix</A>&amp; matrix) const </B></TT>
<DD>return true if the matrix passed in matches the projection matrix that this ShaowVolumeOccluder is
associated with
<DL><DT><DD></DL><P>
<A NAME="setNodePath"></A>
<A NAME="DOC.2.112.7"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void setNodePath(NodePath&amp; nodePath)</B></TT>
<DD>Set the NodePath which describes the which node in the scene graph
that this occluder was attached to
<DL><DT><DD></DL><P>
<A NAME="getNodePath"></A>
<A NAME="DOC.2.112.8"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   NodePath&amp; getNodePath()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="getNodePath"></A>
<A NAME="DOC.2.112.9"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   const NodePath&amp; getNodePath() const </B></TT>
<DL><DT><DD></DL><P>
<A NAME="getVolume"></A>
<A NAME="DOC.2.112.10"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float getVolume() const </B></TT>
<DD>get the volume of the occluder minus its holes, in eye coords, the volume is normalized by dividing by 
the volume of the view frustum in eye coords
<DL><DT><DD></DL><P>
<A NAME="getOccluder"></A>
<A NAME="DOC.2.112.11"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Polytope.html">Polytope</A>&amp; getOccluder()</B></TT>
<DD>return the occluder polytope
<DL><DT><DD></DL><P>
<A NAME="getOccluder"></A>
<A NAME="DOC.2.112.12"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const <!1><A HREF="Polytope.html">Polytope</A>&amp; getOccluder() const </B></TT>
<DD>return the const occluder polytope
<DL><DT><DD></DL><P>
<A NAME="getHoleList"></A>
<A NAME="DOC.2.112.13"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>HoleList&amp; getHoleList()</B></TT>
<DD>return the list of holes
<DL><DT><DD></DL><P>
<A NAME="getHoleList"></A>
<A NAME="DOC.2.112.14"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>const HoleList&amp; getHoleList() const </B></TT>
<DD>return the const list of holes
<DL><DT><DD></DL><P>
<A NAME="contains"></A>
<A NAME="DOC.2.112.15"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool contains(const std::vector&lt;<!1><A HREF="Vec3.html">Vec3</A>&gt;&amp; vertices)</B></TT>
<DD>return true if the specified vertex list is contaned entirely
within this shadow occluder volume
<DL><DT><DD></DL><P>
<A NAME="contains"></A>
<A NAME="DOC.2.112.16"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool contains(const <!1><A HREF="BoundingSphere.html">BoundingSphere</A>&amp; bound)</B></TT>
<DD>return true if the specified bounding sphere is contaned entirely
within this shadow occluder volume
<DL><DT><DD></DL><P>
<A NAME="contains"></A>
<A NAME="DOC.2.112.17"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>bool contains(const <!1><A HREF="BoundingBox.html">BoundingBox</A>&amp; bound)</B></TT>
<DD>return true if the specified bounding box is contained entirely
within this shadow occluder volume
<DL><DT><DD></DL><P>
<A NAME="transformProvidingInverse"></A>
<A NAME="DOC.2.112.18"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void transformProvidingInverse(const <!1><A HREF="Matrix.html">osg::Matrix</A>&amp; matrix)</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_volume"></A>
<A NAME="DOC.2.112.19"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>float _volume</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_nodePath"></A>
<A NAME="DOC.2.112.20"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>NodePath _nodePath</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_projectionMatrix"></A>
<A NAME="DOC.2.112.21"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="ref_ptr.html">ref_ptr</A>&lt;const <!1><A HREF="Matrix.html">Matrix</A>&gt;  _projectionMatrix</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_occluderVolume"></A>
<A NAME="DOC.2.112.22"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B><!1><A HREF="Polytope.html">Polytope</A> _occluderVolume</B></TT>
<DL><DT><DD></DL><P>
<A NAME="_holeList"></A>
<A NAME="DOC.2.112.23"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>HoleList _holeList</B></TT>
<DL><DT><DD></DL><P>
<A NAME="disableResultMasks"></A>
<A NAME="DOC.2.112.24"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>typedef  std::vector&lt;<!1><A HREF="ShadowVolumeOccluder.html">ShadowVolumeOccluder</A>&gt;inline  ShadowVolumeOccluderList void disableResultMasks()</B></TT>
<DD>A list of ShadowVolumeOccluder, used by CollectOccluderVisitor and CullVistor's
<DL><DT><DD></DL><P>
<A NAME="pushCurrentMask"></A>
<A NAME="DOC.2.112.25"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void pushCurrentMask()</B></TT>
<DL><DT><DD></DL><P>
<A NAME="popCurrentMask"></A>
<A NAME="DOC.2.112.26"></A>
<DT><IMG ALT="o" BORDER=0 SRC=icon2.gif><TT><B>inline   void popCurrentMask()</B></TT>
<DL><DT><DD></DL><P></DL>

<HR><DL><DT><B>This class has no child classes.</B></DL>

<DL><DT><DD></DL><P><P><I><A HREF="index.html">Alphabetic index</A></I> <I><A HREF="HIER.html">HTML hierarchy of classes</A> or <A HREF="HIERjava.html">Java</A></I></P><HR>
<BR>
This page was generated with the help of <A HREF="http://docpp.sourceforge.net">DOC++</A>.
</BODY>
</HTML>
